import java.util.ArrayList;

import watercups.operators.WaterCupOperators;
//import watercups.states.CMState;
//import watercups.states.FarmerStates;
import watercups.states.WaterCupState;
import templates.Operator;
import templates.State;
import algorithms.*;
public class MainClass {
	public static void main(String[] args){
		//1.descrierea probl
		   //1a.definirea operatorilor
        ArrayList<Operator<WaterCupState>> waterCupOperators = WaterCupOperators.returnOperators();
        
           //1b.definirea starii initiale
        State<WaterCupState> waterCupInitialState=WaterCupState.initialState();
        
           //1c.definirea starilor finale
        ArrayList<State<WaterCupState>> waterCupFinalState=WaterCupState.finalState();
        
        //2.definirea fisierului de log, care va descrie solutia
        String WaterCupDepth="WaterCupDepth.txt";
        
        //3.definirea contextului de rezolvare si executia strategiei respective;
        Context<WaterCupState> w;
        w=new Context<WaterCupState> (new DepthStrategy<WaterCupState>());
        w.executeStrategy(waterCupInitialState, waterCupFinalState, waterCupOperators, WaterCupDepth);

	}

}
